]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Allow dragging a Workspace.WindowClone into favorites well
authorColin Walters <walters@verbum.org>
Thu, 2 Jul 2009 09:04:33 +0000 (05:04 -0400)
committerColin Walters <walters@verbum.org>
Thu, 2 Jul 2009 09:04:33 +0000 (05:04 -0400)
It's a natural thing to do, though in the future we may want
to split the WindowClone into js/misc/window.js or the like.

js/ui/appDisplay.js
src/shell-app-monitor.c
src/shell-app-monitor.h

index 730d4dff1a14c517410215b7faa6d591f8cf9ec6..a3e9d50cf7b5ede00d1d2ec2498113cea223cac1 100644 (file)
@@ -14,6 +14,7 @@ const Mainloop = imports.mainloop;
 const AppInfo = imports.misc.appInfo;
 const DND = imports.ui.dnd;
 const GenericDisplay = imports.ui.genericDisplay;
+const Workspaces = imports.ui.workspaces;
 
 const ENTERED_MENU_COLOR = new Clutter.Color();
 ENTERED_MENU_COLOR.from_pixel(0x00ff0022);
@@ -574,6 +575,11 @@ WellArea.prototype = {
             id = source.appInfo.appId;
         } else if (source instanceof AppDisplayItem) {
             id = source.getId();
+        } else if (source instanceof Workspaces.WindowClone) {
+            let appMonitor = Shell.AppMonitor.get_default();
+            id = appMonitor.get_window_id(source.metaWindow);
+            if (id === null)
+                return false;
         } else {
             return false;
         }
index 87b7f6c22fa142d4e1abc91bd5a403ed6e851e59..f09961023f186ee7a6c4037024aeb40401a21ab5 100644 (file)
@@ -544,6 +544,19 @@ shell_app_monitor_get_most_used_apps (ShellAppMonitor *monitor,
   return list;
 }
 
+/**
+ * shell_app_monitor_get_window_id
+ * @monitor: An app monitor instance
+ * @metawin: A #MetaWindow
+ *
+ * Returns: (transfer full): Desktop file id associated with window
+ */
+char *
+shell_app_monitor_get_window_id (ShellAppMonitor *monitor, MetaWindow *metawin)
+{
+  return g_hash_table_lookup (monitor->window_to_appid, metawin);
+}
+
 /**
  * shell_app_monitor_get_running_app_ids:
  *
index 65bf8b0900abf8e24f550ecbedb5d72072f4145a..073691b1d7b503feb237616787d32af90f9f3d6b 100644 (file)
@@ -5,6 +5,8 @@
 #include <glib-object.h>
 #include <glib.h>
 
+#include "window.h"
+
 /* 
  * This object provides monitoring of system application directories (.desktop files)
  * and activity-based statistics about applications usage 
@@ -35,6 +37,8 @@ GType shell_app_monitor_get_type (void) G_GNUC_CONST;
 
 ShellAppMonitor* shell_app_monitor_get_default(void);
 
+char *shell_app_monitor_get_window_id (ShellAppMonitor *monitor, MetaWindow *metawin);
+
 /* Get the most popular applications for a given activity */
 GSList *shell_app_monitor_get_most_used_apps (ShellAppMonitor *monitor,
                                               int              activity,